package com.jt.demo6_anno;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

/**
 *1、该类主要测试  注解的注入方式
 * 2、练习对象的嵌套关系
 * 3、注解的写法与xml写法的原理相同，形式不同
 */
@Component
public class User {

    /**
     *  注解说明：
     *  1、@Autowired 自动注入
     *  规则：
     *      1.默认条件下使用set方式注入，按照类型匹配
     *      2、set方式注入也可以按照name名称进行匹配
     *      3、只要使用注解，默认自动生成set方法
     *  实现原理：
     *      1、类型匹配：如果是接口，则自动匹配其实现类对象
     *      2.name名称匹配： 根据spring中的key进行注入
     *  注解说明：
     *      @Qualifier必须和@Autowired联用。
     *      并且需要指定value的名称，就是Spring中的key
     *    准则：一般条件下，spring都是单实现！！
     */
    @Autowired
    @Qualifier("pig")
    private Pet pet;

public void hello(){
    pet.hello();
}
}
